package com.itany.thread.test01;

public class Test03 {
	public static void main(String[] args) {
//		TicketThread t1 = new TicketThread("窗口1");
//		TicketThread t2 = new TicketThread("窗口2");
		// 使用继承Thread类的方式实例化了两个线程
		// 每一个线程都有独立的票
		// 最终票数为:100*2=200
//		t1.start();
//		t2.start();
		
		// 实现Runnable接口的时候,只实例化了一个TicketRunnable
		// 开启的两个线程均是通过TicketRunnable实例化的
		// 因此,两个线程共用票数
		// 最终票数为:100张
		TicketRunnable tr = new TicketRunnable();
		// 参数二:自定义线程名
		Thread t1 = new Thread(tr,"窗口1");
		Thread t2 = new Thread(tr,"窗口2");
		t1.start();
		t2.start();
		
	}
}
class TicketThread extends Thread{
	// 多个窗口同时售票,每一个窗口对应一个线程
	// 共有100张票
	private int count = 100;
	private String name;
	public TicketThread(String name) {
		this.name = name;
	}
	@Override
	public void run() {
		while(count > 0){
			System.out.println(name+"正在出票:"+count--);
		}
	}
}

class TicketRunnable implements Runnable{
	// 多个窗口同时售票,每一个窗口对应一个线程
	// 共有100张票
	private int count = 100;
	@Override
	public void run() {
		while(count > 0){
			System.out.println(Thread.currentThread().getName()+"正在出票:"+count--);
		}
	}
}

